In mathematics, a unary operation is an operation with only one operand, i.e. a single input. This is in contrast to , which use two operands. An example is any function , where is a set; the function is a unary operation on .
Common notations are prefix notation (e.g. ¬, −), postfix notation (e.g. factorial ), functional notation (e.g. or ), and (e.g. transpose ). Other notations exist as well, for example, in the case of the square root, a horizontal bar extending the square root sign over the argument can indicate the extent of the argument.
Examples
Absolute value
Obtaining the
absolute value of a number is a unary operation. This function is defined as
where
is the absolute value of
.
Negation
Negation is used to find the negative value of a single number. Here are some examples:
Factorial
For any positive integer
n, the product of the integers less than or equal to
n is a unary operation called
factorial. In the context of
, the
gamma function is a unary operation extension of factorial.
Trigonometry
In
trigonometry, the trigonometric functions, such as
,
, and
, can be seen as unary operations. This is because it is possible to provide only one term as input for these functions and retrieve a result. By contrast, binary operations, such as
addition, require two different terms to compute a result.
Examples from programming languages
Below is a table summarizing common unary operators along with their symbols, description, and examples:
|
|
++ |
x = 2; ++x; // x is now 3 |
-- |
y = 10; --y; // y is now 9 |
+ |
a = -5; b = +a; // b is -5 |
JavaScript
In
JavaScript, these operators are unary:
-
Increment: -, c = 4; d = -c; // d is -4
-
Decrement: !, flag = true; result = !flag; // result is false
-
Positive: ~
-
Negative: num = 5; result = ~num; // result is -6
-
Ones' complement: ++<span style="color:gray;">x</span>
-
Negation: <span style="color:gray;">x</span>++
C family of languages
In the C family of languages, the following operators are unary:
-
Increment: --<span style="color:gray;">x</span>, <span style="color:gray;">x</span>--
-
Decrement: +<span style="color:gray;">x</span>, -<span style="color:gray;">x</span>
-
Address: ~<span style="color:gray;">x</span>
-
Indirection: !<span style="color:gray;">x</span>
-
Positive: ++<span style="color:gray;">x</span>
-
Negative: <span style="color:gray;">x</span>++
-
Ones' complement: --<span style="color:gray;">x</span>
-
Negation: <span style="color:gray;">x</span>--
-
Sizeof: &<span style="color:gray;">x</span>
-
Type conversion: *<span style="color:gray;">x</span>
Unix shell (Bash)
In the
Unix shell (Bash/
Bourne shell), e.g., the following operators are unary:
-
Pre and Post-Increment: +<span style="color:gray;">x</span>, -<span style="color:gray;">x</span>
-
Pre and Post-Decrement: ~<span style="color:gray;">x</span>, !<span style="color:gray;">x</span>
-
Positive: sizeof <span style="color:gray;">x</span>, sizeof(<span style="color:gray;">type-name</span>)
-
Negative: (''type-name'') ''<span style="color:gray;">cast-expression</span>''
-
Logical negation: ++<span style="color:gray;">$x</span>
-
Simple expansion: <span style="color:gray;">$x</span>++
-
Complex expansion: --<span style="color:gray;">$x</span>
PowerShell
In the
PowerShell, the following operators are unary:
-
Increment: <span style="color:gray;">$x</span>--, +<span style="color:gray;">$x</span>
-
Decrement: -<span style="color:gray;">$x</span>, !<span style="color:gray;">$x</span>
-
Positive: $<span style="color:gray;">x</span>
-
Negative: ${#<span style="color:gray;">x</span>}
-
Logical negation: ++<span style="color:gray;">$x</span>
-
Invoke in current scope: <span style="color:gray;">$x</span>++
-
Invoke in new scope: --<span style="color:gray;">$x</span>
-
Cast: <span style="color:gray;">$x</span>--
-
Cast: +<span style="color:gray;">$x</span>
-
Array: -<span style="color:gray;">$x</span>
See also
External links